package cn.iocoder.yudao.module.system.controller.admin.product.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.math.BigDecimal;
import java.util.*;
import javax.validation.constraints.*;

@Schema(description = "管理后台 - 系统产品新增/修改 Request VO")
@Data
public class ProductSaveReqVO {

    @Schema(description = "产品编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "20929")
    private Long id;

    @Schema(description = "产品类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "产品类型不能为空")
    private Integer type;

    @Schema(description = "产品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
    @NotEmpty(message = "产品名称不能为空")
    private String name;

    @Schema(description = "产品代码", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "产品代码不能为空")
    private String code;

    @Schema(description = "是否免费", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "是否免费不能为空")
    private Integer isFree;

    @Schema(description = "免费数量", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer freeCount;

    @Schema(description = "额度有效期", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer freeExpireTime;

    @Schema(description = "单价", requiredMode = Schema.RequiredMode.REQUIRED)
    private BigDecimal price;

    @Schema(description = "产品简介")
    private String remark;

    // 发货方式： 1- 虚拟发货；2-物流
    private Integer deliveryType;

    @Schema(description = "单位")
    private String unit;

    @Schema(description = "提醒阈值")
    private Integer remindNum;

}